package com.java110.intf.chain;

import com.java110.intf.FeignConfiguration;
import com.java110.dto.chain.ChainSupplierProductDto;
import com.java110.dto.chain.StoreOrderChainDto;
import com.java110.vo.ResultVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * @ClassName IRoomInnerServiceSMO
 * @Description 小区房屋接口类
 * @Author wuxw
 * @Date 2019/4/24 9:04
 * @Version 1.0
 * add by wuxw 2019/4/24
 **/
@FeignClient(name = "mall-chain", configuration = {FeignConfiguration.class})
@RequestMapping("/chainCoreApi")
public interface IChainCoreInnerServiceSMO {

    /**
     * <p>调用链校验</p>
     *
     *
     * @param storeOrderChainDto  订单调用链数据
     * @return RoomDto 对象数据
     */
    @RequestMapping(value = "/validateChainOrder", method = RequestMethod.POST)
    ResultVo validateChainOrder(@RequestBody StoreOrderChainDto storeOrderChainDto) throws Exception;


    /**
     * <p>调用链校验</p>
     *
     *
     * @param storeOrderChainDto  订单调用链数据
     * @return RoomDto 对象数据
     */
    @RequestMapping(value = "/notifyChainOrder", method = RequestMethod.POST)
    ResultVo notifyChainOrder(@RequestBody StoreOrderChainDto storeOrderChainDto) throws Exception;

    /**
     * <p>调用链校验</p>
     *
     *
     * @param chainSupplierProductDto  订单调用链数据
     * @return RoomDto 对象数据
     */
    @RequestMapping(value = "/queryProducts", method = RequestMethod.POST)
    ResultVo queryProducts(@RequestBody ChainSupplierProductDto chainSupplierProductDto) throws Exception;


    /**
     * <p>查询单个商品详情</p>
     *
     *
     * @param chainSupplierProductDto  订单调用链数据
     * @return RoomDto 对象数据
     */
    @RequestMapping(value = "/querySingleProduct", method = RequestMethod.POST)
    ResultVo querySingleProduct(@RequestBody ChainSupplierProductDto chainSupplierProductDto) throws Exception;


    /**
     * <p>查询单个商品评论</p>
     *
     *
     * @param chainSupplierProductDto  订单调用链数据
     * @return RoomDto 对象数据
     */
    @RequestMapping(value = "/queryProductComments", method = RequestMethod.POST)
    ResultVo queryProductComments(@RequestBody ChainSupplierProductDto chainSupplierProductDto) throws Exception;


    /**
     * <p>查询物流信息</p>
     *
     *
     * @param chainSupplierProductDto  订单调用链数据
     * @return RoomDto 对象数据
     */
    @RequestMapping(value = "/queryLogisticsInfo", method = RequestMethod.POST)
    ResultVo queryLogisticsInfo(@RequestBody ChainSupplierProductDto chainSupplierProductDto) throws Exception;


    /**
     * <p>供应链商品插入</p>
     *
     *
     * @param chainSupplierProductDto  订单调用链数据
     * @return RoomDto 对象数据
     */
    @RequestMapping(value = "/insertSingleProduct", method = RequestMethod.POST)
    ResultVo insertSingleProduct(@RequestBody ChainSupplierProductDto chainSupplierProductDto) throws Exception;


}
